#ifndef BASEBOXDESCRIPTOR_H_JM_20120923
#define BASEBOXDESCRIPTOR_H_JM_20120923

#include "BoxBaseTypes.h"

namespace jm4bbx {
	
	struct BaseBoxDescriptor {
		static const groupType SIGNAL_IN_GROUP;
		static const groupType SIGNAL_OUT_GROUP;	
		static const columnType SIGNAL_IN_COLUMN;
		static const columnType SIGNAL_OUT_COLUMN;
		static const inType SIGNAL_IN_ARC;
		static const outType SIGNAL_OUT_ARC;
		static const char* SIGNAL_IN_PARAMETER_NAME;
		static const char* SIGNAL_OUT_PARAMETER_NAME;

		static const int SIGNAL_IN_GROUP_START_INDEX = 1000;
		static const int SIGNAL_IN_ARC_START_INDEX = 1000;

		static const int SIGNAL_OUT_GROUP_START_INDEX = 2000;
		static const int SIGNAL_OUT_ARC_START_INDEX = 1000;

		static groupType getSignalInGroup(const int logicGroupIndex) {
			return groupType(SIGNAL_IN_GROUP_START_INDEX + logicGroupIndex);
		}  

		static inType getSignalInArc(const int logicArcIndex) {
			return inType(SIGNAL_IN_ARC_START_INDEX + logicArcIndex);
		}  

		static groupType getSignalOutGroup(const int logicGroupIndex) {
			return groupType(SIGNAL_OUT_GROUP_START_INDEX + logicGroupIndex);
		}  

		static outType getSignalOutArc(const int logicArcIndex) {
			return outType(SIGNAL_OUT_ARC_START_INDEX + logicArcIndex);
		}  

	};

	
} // namespace jm4bbx

#endif
